{T}

Jenkins 配置工作节点

概述

当构建任务增多时,单节点 Jenkins 面临资源不足和单点故障问题。本文详解 Master-Slave 分布式架构,包括工作节点创建、SSH 连接配置、JDK 环境安装及任务绑定策略。

学习目标

  1. 理解 Jenkins Master-Slave 架构原理
  2. 掌握通过 SSH 添加工作节点的完整流程
  3. 能够配置标签实现任务精确分配

一、Master-Slave 架构

图表渲染中…
角色职责
Master任务调度、插件管理、用户权限、Web 界面
Slave执行具体构建任务

为什么需要工作节点

问题说明
资源不足Master 节点 CPU/内存有限
构建队列任务排队等待过长
单点故障所有任务依赖 Master
环境隔离不同项目需要不同构建环境

二、前置准备

安装插件

插件功能必要性
SSH Build Agents通过 SSH 连接工作节点必装

工作节点要求

  • 安装 JDK(版本与 Master 一致)
  • 开放 SSH 端口(默认 22)
  • 创建工作目录(如 /home/jenkins

三、创建工作节点

路径:系统管理 → 节点管理 → 新建节点

基本配置

配置项说明推荐值
名称节点唯一标识devtestprod
执行器数量并行任务数CPU 核数(2-4)
远程工作目录节点上的工作路径/home/jenkins
标签任务绑定标识devlinuxarm
用法使用策略只允许运行绑定的 Job

用法选项

选项说明适用
尽可能使用此节点自动分配任务通用节点
只允许运行绑定的 Job仅执行指定标签任务专用节点(推荐)

四、SSH 连接配置

启动方式

选择:Launch agents via SSH

配置项

配置说明
主机节点 IP 地址
端口SSH 端口(默认 22)
CredentialsSSH 凭证
Host Key VerificationManually trusted key(推荐)

凭证类型

类型配置
Username with password用户名 + 密码
SSH Username with private key用户名 + SSH 私钥

高级配置

配置项推荐值
连接超时300 秒
最大重试次数10
重试间隔5 秒

五、工作节点安装 JDK

Jenkins Agent 需要 Java 运行环境,版本必须与 Master 一致。

bash
# 查看 Master JDK 版本
docker exec jenkins java -version

# 在 Slave 节点安装(CentOS)
yum search java-11-openjdk
yum install java-11-openjdk-devel -y

# 验证
java -version

六、任务绑定节点

自由风格项目

code
General → 限制项目的运行节点 → 标签表达式: dev

Pipeline 项目

groovy
pipeline {
    agent {
        label 'dev'
    }
    stages {
        stage('Build') {
            steps {
                sh 'npm run build'
            }
        }
    }
}

标签表达式

表达式说明
dev匹配标签为 dev 的节点
linux && x86同时匹配两个标签
dev || test匹配 dev 或 test
!windows排除 windows 标签

常见问题

问题解决方案
节点连接失败检查 SSH 端口、凭证、防火墙
Agent 启动报 Java 错误确认 JDK 版本与 Master 一致
任务未分配到指定节点检查标签配置和用法选项
节点离线查看节点日志,检查网络连通性

延伸阅读